/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 17655
 * Date: 2025-05-19
 * Time: 21:35
 */
public class test2 {
    public String longestCommonPrefix(String[] strs) {
        for(int i=0;i<strs[0].length();i++){
            // 先找到第一个字符串的第一个字符
            char ch = strs[0].charAt(i);
            // 如果我第一个字符串的位置已经等于其他字符串的长度了就直接返回，否则会出现才能数组越界，因为其他字符串没有charAt(i)了
            for(int j = 1;j<strs.length;j++){
                if(i== strs[j].length() || strs[j].charAt(i)!=ch){
                    return strs[0].substring(0,i);
                }
            }
        }
        // 上面都没有返回，那就说明整个都相同，直接返回第一个字符串
        return strs[0];
    }

    public String longestCommonPrefix2(String[] strs) {
        if(strs==null || strs.length==0){
            return "";
        }
        // 第一个元素
        String prefix = strs[0];
        // 从之后的字符串开始找
        for(int i=1;i<strs.length;i++){
            // 这个解法相当于，其他字符串有没有包含整个第一个字符串，没有就让你第一个字符串从后往前-1，直到有公共的
            while(strs[i].indexOf(prefix) !=0){
                prefix = prefix.substring(0,prefix.length()-1);
                if(prefix.isEmpty()){
                    return "";
                }
            }
        }
        return prefix;
    }
}
